package com.googlecode.transmutant.spring

import java.lang.annotation.ElementType 
import java.lang.annotation.Retention 
import java.lang.annotation.RetentionPolicy 
import java.lang.annotation.Target 
import org.codehaus.groovy.ast.ASTNode 
import org.codehaus.groovy.ast.ClassNode 
import org.codehaus.groovy.ast.MethodNode 
import org.codehaus.groovy.ast.expr.ArgumentListExpression 
import org.codehaus.groovy.ast.expr.ConstantExpression 
import org.codehaus.groovy.ast.expr.MethodCallExpression 
import org.codehaus.groovy.ast.expr.VariableExpression 
import org.codehaus.groovy.ast.stmt.ExpressionStatement 
import org.codehaus.groovy.ast.stmt.Statement 
import org.codehaus.groovy.control.CompilePhase 
import org.codehaus.groovy.control.SourceUnit 
import org.codehaus.groovy.transform.ASTTransformation 
import org.codehaus.groovy.transform.GroovyASTTransformation 
import org.codehaus.groovy.transform.GroovyASTTransformationClass 

class StepsWrapper {

	List<StepWrapper> steps = []
	
	List<Object> createSteps() {
		def steppables = []
		steps.each {stepWrapper->
			if(stepWrapper.ref == null) {
				stepWrapper.ref = Class.forName(stepWrapper.clazz).newInstance()
			}
			steppables.add(stepWrapper)
		}
		return steppables
	}
}
